Android アプリ内課金 課金テスト時の注意点


アプリ内課金API Version3には課金テスト用のコード等がないため、課金テストを行うには実際にアプリ内アイテムを購入する必要があります。
この時、いくつか引っかかった注意点がありますので、記載します。

まず、テストアカウントをGoogle Play Developer Consoleに登録します。
メニューの「設定」から「テスト用のアクセス権があるGmailアカウント」にテスト用アカウントのアドレスを記載してください。
この時、開発者アカウントでは購入が行えないので別のアカウントを準備する必要があります。
また、購入はプライマリアカウント(デバイスの初回起動時に登録したアカウント)でなければ行えません。テストアカウントがデバイスのプライマリアカウントではない場合は、本体設定から工場出荷時の状態にリセット(ファクトリーリセット)して登録してください。

アプリを実機にインストールする時、Eclipseから実行すると課金アイテム購入処理の時に「お客様はこの購入を行えません。」とエラーが出る場合があります。
これはデバッグ用の証明書が使われているために起こるエラーで、回避するためにはGoogle PlayにアップロードしたAPKファイルに使われている証明書と同じものを使う必要があります。
まず、作成したAPKファイルをAndroid SDKインストールフォルダ内の/platform-toolsにコピーします。
次にコマンドプロンプトを起動し、cdコマンドで/platform-toolsまでディレクトリを移動させた後

adb install [アプリ名].apk

を実行してインストールします。この時、既に同じアプリがインストールされているとエラーが出るため、あらかじめアンインストールしてください。

Google Playにアプリ内アイテムを登録、有効にしたのに購入できない場合、アプリが非公開である場合は公開にすることで解決する場合もあります。
本来ならばアプリ内アイテムを有効にさえしていればアプリそのものは非公開でもテストは行えるはずなのですが、私がテストした時は購入が行えず、アプリを公開にすることで解決しました。

最後に、頻発するものではないと思いますが購入時に「接続がタイムアウトしました。」と表示され、購入処理が中断された時。
私の場合はアプリ内では課金アイテムを所持していないことになっており、再度購入しようとすると「このアイテムは既に購入済みです。」と表示される、という状態になりました。
アプリを再起動しても状態は同じでしたが、端末を再起動することで正常にアイテムを購入した状態になりました。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です